Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- Parallel processing



  Some Thoughts on Twitter's Availability Problems

As a regular user of Twitter I've felt the waves of frustration wash over me these past couple of weeks as the service has been hit by one outage after another. This led me to start pondering the problem space [especially as it relates to what I'm currently working on at work] and deduce that the service must have some serious architectural flaws which have nothing to do with the reason usually thrown about by non-technical pundits (i.e. Ruby on Rails is to blame). Some of my suspicions ...

   Twitter,Architecture,Availability,Design     2011-08-12 07:39:21

  Open Source (Almost) Everything

When Chris and I first started working on GitHub in late 2007, we split the work into two parts. Chris worked on the Rails app and I worked on Grit, the first ever Git bindings for Ruby. After six months of development, Grit had become complete enough to power GitHub during our public launch of the site and we were faced with an interesting question:Should we open source Grit or keep it proprietary?Keeping it private would provide a higher hurdle for competing Ruby-based Git hosting sites, givin...

   Open source,Benefits,Popularity,Advertisement,Advantage     2011-11-23 07:58:15

  Signs that you're a bad programmer

1. Inability to reason about codeReasoning about code means being able to follow the execution path ("running the program in your head") while knowing what the goal of the code is.SymptomsThe presence of "voodoo code", or code that has no effect on the goal of the program but is diligently maintained anyway (such as initializing variables that are never used, calling functions that are irrelevant to the goal, producing output that is not used, etc.)Executing idempotent functions multiple times (...

   Sign,Programmer,Characteristics,Knowledge,Skill     2011-10-20 08:56:16

  The "C is Efficient" Language Fallacy

I came across an article yesterday about programming languages, which hit on one of my major peeves, so I can't resist responding. The article is at greythumb.org, and it's called Programmer's rant: what should and should not be added to C/C++. It's a variation on the extremely common belief that C and C++ are the best languages to use when you need code to run fast. They're not. They're good at things that need to get very close to the hardware - not in the efficiency sense, but in the...

   C,GCC,Fallacy,Evolvement     2012-01-09 08:54:46

  Dart is to JavaScript as C# is to C++

Given the background of Lars Bak, the Google engineer whose V8 JavaScript interpreter upended Firefox's claim on speed, it was reasonable to suspect Google's new Web development language might look a lot like Smalltalk. But that might have taken the Web in a strange and different direction. Today, on the day of a Web developers' conference in Denmark, Google and members of the Chromium open source development team raised the curtain on Dart, the company's bid for a new and somewhat more str...

   Dart,Google,JavaScript,Virtual Machine,Chromium     2011-10-21 08:40:09

  Use of log in programming

Usually, The purposes of log are for troubleshooting and displaying program running status. Good log will help us locate the error easier. Many programmers think log in programs is very simple, but it's not an easy task to write log codes to efficiently locate the error. Here we discuss about program log in three aspects: Where to log What to log Log styles to be avoided Where to log 1. When calling external functions When your program is calling some external functions which are not written b...

   Log, Programming,Debug     2012-11-28 11:42:23

  A plugin to update last_error in Delayed Job

delayed_job is a process based asynchronous task processing gem which can be ran at background. It will fork the specified number of processes to execute the tasks asynchronously. The task status is usually stored in the database so that it can be easily integrated into a Rails application where asynchronous job execution is desired. Normally when a job fails to execute or error occurs, it would save the error into the database with the column last_error. Ideally all these will be handled b...

   RUBY,RUBY ON RAILS,DELAYED JOB,LAST_ERROR     2017-11-18 13:05:49

  What have been Facebook’s greatest technical accomplishments?

To maintain a large website which gets billions of requests er day and keeps very fast response speed is not an easy task. Many big companies are trying best to improve user experience by adopting different techniques. There is a question on Quora which asks "What have been Facebook’s greatest technical accomplishments?". There is a person who worked in Facebook before provided an answer which helps us understanding how Facebook handles huge amount of traffic each day. Here is the answer f...

   Facebook, Design, Efficiency     2013-01-15 07:32:07

  XMLHttpRequest Level 2 user guide

XMLHttpRequest is a web browser interface, it makes it possible for JavaScript doing HTTP(s) communication. Microsoft's IE5 first introduced XMLHttpRequest, because it's so useful that many other browsers also adopted this. AJAX came to the front since. However, this interface is not standardized, implementation among different browsers is different, with the emerging of HTML5, W3C is considering to standardize this interface. In February 2008, they proposed a XMLHttpRequest Level 2 draft. This ...

   XMLHttpRequest, progress, upload, binary data     2012-09-19 11:51:50

  Management Myth #1: The Myth of 100% Utilization

A manager took me aside at a recent engagement. “You know, Johanna, there’s something I just don’t understand about this agile thing. It sure doesn’t look like everyone is being used at 100 percent.”“And what if they aren’t being used at 100 percent? Is that a problem for you?”“Heck, yes. I’m paying their salaries! I want to know I’m getting their full value for what I’m paying them!”“What if I told you...

   Management,Utilization,Efficiency,Innovation     2012-01-05 08:13:41